x = 'axb|bxa|bxc|cxb|cxd|dxc|dxe|exd|exf|fxe|fxg|gxf|gxh|hxg'
move = '^[a-h][2-7][+#]?$'
promotion = '^[a-h][18]=[QBNR][+#]?$'
capture = f'^({x})([2457]|[36](e\.p.)?|[18]=[QBNR])[+#]?$'
VALID_PAWN_MOVE_REGEX = rf'{move}|{promotion}|{capture}'
